package com.study.security;

import io.jsonwebtoken.CompressionCodec;
import io.jsonwebtoken.CompressionCodecs;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * 1.生成token
 * 2.根据用户名得到token
 * 使用JWT生成token
 */
@Component
public class TokenManager {
    //token有效时长
    private long tokenEcpiration=24*60*60*100;
    //编码密钥
    private String tokenSignKey="123456";
    //使用Jwts根据用户名生成token
   public String createToken(String username){
       String token = Jwts.builder().setSubject(username)//设置具体内容
               .setExpiration(new Date(System.currentTimeMillis() + tokenEcpiration))//设置有效时长取当前日期加有效时长
               .signWith(SignatureAlgorithm.ES256, tokenSignKey).compressWith(CompressionCodecs.GZIP).compact();//设置签名信息
       return token;
   }
    //根据token字符串得到用户信息
    public String getUserInfoFromToken(String token){
        String userInfo = Jwts.parser()//解析密钥解析token从body中得到具体内容
                .setSigningKey(tokenSignKey).parseClaimsJws(token).getBody().getSubject();
        return userInfo;
    }
    //删除token
    public void removeToken(String token){
    }
}
